package com.xizi.prox;


/*
   静态代理实现步骤:
    1.定义一个接口及其实现类；
    2.创建一个代理类同样实现这个接口
    3.将目标对象注入进代理类，然后在代理类的对应方法调用目标类中的对应方法。
      这样的话，我们就可以通过代理类屏蔽对目标对象的访问，并且可以在目标方法执行前后做一些自己想做的事情。
 */
public class SmsProxy implements SmsService {

    //将目标对象注入代理类使用构造函数
    private final SmsService smsService;

    public SmsProxy(SmsService smsService) {
        this.smsService = smsService;
    }

    @Override
    public String send(String message) {
        //调用方法之前，我们可以添加自己的操作
        System.out.println("before method send()");
        smsService.send(message); //多态  父类指向子类 调用子类重写的方法
        //调用方法之后，我们同样可以添加自己的操作
        System.out.println("after method send()");
        return null;
    }


}